#ifndef XGP_STUDY_DEMO36_DYNAMICARRAY_H
#define XGP_STUDY_DEMO36_DYNAMICARRAY_H

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//动态数组的结构体
typedef struct DYNAMICARRAY {
    int* pAddr;     //存放数据的地址
    int size;       //当前又多少元素
    int capacity;   //容量，我容器当前的最大能容纳的元素
} Dynamic_Array;

//写一系列相关对动态数组操作的方法
//1，初始化
Dynamic_Array* Dynamic_Array_Init();
//2，插入
void Push_Back_Array(Dynamic_Array* arr,int value);
//3，删除
void RemoveByPos_Array(Dynamic_Array* arr,int pos);
//4,根据值删除
void RemoveByValue_Array(Dynamic_Array* arr,int value);
//5,释放动态数据的内存
void FreeSpace_Array(Dynamic_Array* arr);
//6,查找
int Find_Array(Dynamic_Array* arr,int value);
//7,打印
void Print_Array(Dynamic_Array* arr);
//8,清空数组
void Clear_Array(Dynamic_Array* arr);
//9,获得动态数组的容量
int Capacity_Array(Dynamic_Array* arr);
//10,获得动态数组当前的元素个数
int Size_Array(Dynamic_Array* arr);
//11,获得某个位置的元素
int At_Array(Dynamic_Array* arr,int pos);

#endif //XGP_STUDY_DEMO36_DYNAMICARRAY_H
